package JavaEE_notes.common_API;

import java.util.Date;

/**
 * @description 时间 API 示例
 * @author TaiZai
 * @data 2024/9/20 14:13
 */
public class api_Date {
    public static void main(String[] args) {
        Date date = new Date(); // 获取当前系统时间
        System.out.println(date); // Fri Sep 20 14:14:32 CST 2024
        // 获取年月日
        System.out.println(date.getYear()); // 距离公园 1900 年的月份
        System.out.println(date.getMonth() + 1); // 8 默认的范围是 0-11
        System.out.println(date.getDate()); // 返回日期 20
        System.out.println(date.getDay()); // 获取星期几 0-6, 0是星期日
        // 获取小时分钟秒
        System.out.println(date.getHours());   // 时
        System.out.println(date.getMinutes()); // 分
        System.out.println(date.getSeconds()); // 秒

        // 设置时间 这里只展示构造函数实现  也可以通过set方法一个一个赋值，但过于麻烦
        Date date2 = new Date(2024, 8, 20, 14, 15, 30);
        System.out.println(date2); // Fri Sep 20 14:15:30 CST 2024

        // 比较时间
        Date d1 = new Date(2024, 8, 20, 14, 15, 30);
        Date d2 = new Date(2024, 8, 20, 13, 15, 30);
        /**
         * a.before(b) 返回 true，如果此 a 对象在指定 b 对象之前
         * b.after(a) 返回 true，如果此 a 对象在指定 b 对象之后
         * a.compareTo(b) 返回负数，如果此 a 对象小于指定 b 对象; 0，如果此 a 对象等于指定 b 对象; 正数，如果此 a 对象大于指定 b 对象
         */
        System.out.println(d1.after(d2)); // true
        System.out.println(d1.before(d2)); // false
        System.out.println(d1.compareTo(d2)); // 1
    }
}
